perm filename TEST3.SAI[SAI,BGB]1 blob sn#030966 filedate 1973-05-01 generic text, type T, neo UTF8
00100	BEGIN "TEST3"
00200		DEFINE !="COMMENT";
00300		DEFINE π="3.1415927";
00400		REQUIRE "⊂⊃⊂⊃" DELIMITERS;
00500		REQUIRE "GEOMES.HDR" SOURCE_FILE;
00600	
00700		INTEGER B1,B2,B3,F,E,V,V0,T;
00800		INTEGER WORLD,WINDOW,CAMERA;
00900	
01000	! UNIVERSE CREATION;
01100	
01200		WORLD ← MKWORLD;	! MAKE A WORLD;
01300		WINDOW ← MKWINDOW;	! MAKE A WINDOW;
01400		CAMERA ← MKCAMERA;	! MAKE A CAMERA;
01500		BATT(WORLD,WINDOW);	! BODY-ATTACH WORLD TO WINDOW;
01600		BATT(CAMERA,WINDOW);	! BODY-ATTACH CAMERA TO WINDOW;
01700		
01800	! BODY CREATION;
01900		
02000		B1 ← MKB(WORLD);
02100		F  ← MKF(B1);
02200		V ← V0  ← MKV(B1); XWC(V) ← 2.0;	! FIRST VERTEX.;
02300		FOR T←1 STEP 1 UNTIL 15 DO		! 7 MORE VERTICES.;
02400		BEGIN V ← MKEV(F,V);ROTATE(V,0,0,π/8);END;
02500		MKFE(V0,F,V);
02600		TRANSLATE(F,0,0,+4);
02700		SWEEP(F,0);
02800		TRANSLATE(F,0,0,-8);
02900	
03000		B2 ← MKCOPY(B1);SHRINK(B2,.2,.2,1.1);
03100		ROTATE(B2,0,0,π/40);ROTATE(B2,0,-π/2,0);
03200		ROTATE(B1,0,-π/17,0);		! ROTATION CW ABOUT Y-AXIS;
03250		SHOW1(WINDOW,1);
03300		B3 ← BSUB(B1,B2);
03400		KLBFEV(B1);KLBFEV(B2);B1←B3;
03500	! ACTION;
03600	
03700		FOR T←1 STEP 1 UNTIL 30 DO
03800			 OUTSTR(13&10);		! FLUSH THE PAGE PRINTER;
03900		WHILE TRUE DO 
04000		BEGIN
04100			ROTATE(B1,0,-π/17,0);	! ROTATION CW ABOUT Y-AXIS;
04200		FOR T←1 STEP 1 UNTIL 40 DO
04300		BEGIN 
04400			ROTATE(B1,π/20,0,0);	! ROTATION CCW ABOUT X-AXIS;
04500			SHOW1(WINDOW,1);	! DISPLAY A SIMULATED IMAGE;
04600			IF INCHRS≥1 THEN DONE;	! EXIT ON TYPE-ANY-KEY;
04700		END;
04800		END;
04900	
05000	END "TEST3"; BGB 24 MARCH 1973.